package com.hospital.service;

import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 文件服务接口
 *
 * @author Hospital Management System
 */
public interface FileService {

    /**
     * 上传单个文件
     *
     * @param file 上传的文件
     * @param type 文件类型（avatar-头像, document-文档, image-图片, report-报告, prescription-处方）
     * @return 文件访问URL
     */
    String uploadFile(MultipartFile file, String type);

    /**
     * 批量上传文件
     *
     * @param files 上传的文件数组
     * @param type 文件类型
     * @return 文件访问URL列表
     */
    List<String> uploadFiles(MultipartFile[] files, String type);

    /**
     * 删除文件
     *
     * @param fileUrl 文件URL
     */
    void deleteFile(String fileUrl);

    /**
     * 获取文件信息
     *
     * @param fileUrl 文件URL
     * @return 文件信息
     */
    Object getFileInfo(String fileUrl);

    /**
     * 校验文件类型
     *
     * @param file 文件
     * @param allowedTypes 允许的文件类型
     * @return 是否合法
     */
    boolean validateFileType(MultipartFile file, String[] allowedTypes);

    /**
     * 校验文件大小
     *
     * @param file 文件
     * @param maxSize 最大文件大小（字节）
     * @return 是否合法
     */
    boolean validateFileSize(MultipartFile file, long maxSize);

    /**
     * 上传头像
     *
     * @param file 头像文件
     * @return 头像访问URL
     */
    String uploadAvatar(MultipartFile file);
} 